# LOL
MOVED TO https://git.ihatebeinga.live/IHBAGang/movie-night-chat UwU

# About

This projects aims to create a bridge for the chat programed used in [MoveNight](https://github.com/zorchenhimer/MovieNight/).
So far, this is work in progress.
At the moment it is a simple IRC server that relays messages back and forth.
Unfortunately, error handling is abscent, and errors from the MoveNight chat are not propagated.
But hey, it kinda works.

# Basic usage

By default, the ircd binds on port 6667 on all the available addresses.
Use the command line options `--port` and `--host` to change that.

The command line option `--url` specifies the URL for the MovieNight chat server
(usually it is `wss://movie-night-domain/ws`).

To produce logs set the env variables PLTSTDOUT or PLTSTDERR to "warning" or "info".
See the [Racket docs on loggers](https://docs.racket-lang.org/reference/logging.html) for details.

## Special commands

- `/STATS` provide some basic statistics about the stream

# Requirements & building

This developement is known to work on Racket v7.5 with packages:
- rfc6455 (websockets implementation, try `raco pkg install rfc6455`)

Build it with `raco make main.rkt` and run `racket main.rkt`.
Or: build native with `raco exe main.rkt`.

# Known issues

- Nick change is not implemented in the ircd
- Nick collisions are handled weirdly: the ircd will send you a notice
  but won't change your nickname.
- /me actions are not handeled
- Bans from the MovieNight chat are not handled
- HTML is not entierly unfucked, although this is somewhat working;
  see unheck-html.rkt.

# Reading

- [Modern IRC Client Protocol](https://modern.ircdocs.horse/)
- [Descriptions of some parts of the IRC protocol](http://chi.cs.uchicago.edu/chirc/index.html)
- [Official RFC](https://tools.ietf.org/html/rfc1459)
